package org.taie.simplequeue;

import java.nio.ByteBuffer;
import java.nio.ByteOrder;

/**
 * User: AbelZ
 * Date: 2011-1-26
 * Time: 20:15:03
 */
public class Message {

    private byte[] data;
    private long addTime;
    private long expireTime;

    public Message(byte[] data, long addTime,long expireTime) {
        this.data = data;
        this.addTime = addTime;
        this.expireTime = expireTime;
    }

    public byte[] pack() {
        byte[] bytes = new byte[data.length + 16];

        ByteBuffer bb = ByteBuffer.wrap(bytes);
        bb.order(ByteOrder.LITTLE_ENDIAN);
        bb.putLong(addTime);
        bb.putLong(expireTime);
        bb.put(data);

        return bytes;
    }

    public void unpack(byte[] bytes) {
        ByteBuffer bb = ByteBuffer.wrap(bytes);
        byte[] data = new byte[bytes.length - 16];
        bb.order(ByteOrder.LITTLE_ENDIAN);
        addTime  = bb.getLong();
        expireTime = bb.getLong();
        bb.get(data);
    }
}
